function NWqd_jiazaiPZ(fq) {
    this.nw = fq;
    this.stJD = null;
    this.wgj = fq.gj;
    this.pz = [];
}

// ======================↓↓↓=========================
//需要文档准备好后，执行。
NWqd_jiazaiPZ.prototype.qd0 = function () {
    // <PZ juese>，只在body下
    this.stJD = document.getElementsByTagName('body')[0];
    this._zbPZ();
}
//缓存【所有的 pz节点】
NWqd_jiazaiPZ.prototype._zbPZ = function () {
    let _ErziM = this.stJD.children;
    let _sx;
    let _jdCS;
    for (let i = 0; i < _ErziM.length; i++) {
        /*    
           所有的参数=this.hqJDcs(【 <PZ juese> 】

           <PZ juese>

            1、【内容直接配置】：
                a=1;b=2;c=4;
            2、【特殊的参数值】：
                <pz cs="属性名1"> 属性值1 </pz>
                <pz cs="属性名2"> 属性值2 </pz>
                
           </PZ> 

           */
        if (_ErziM[i].nodeName == 'PZ' && (_sx = _ErziM[i].getAttributeNode('juese'))) {
            _jdCS = this.hqJDcs(_ErziM[i])
            this.pz.push(new NWqd_jiazaiPZ_gt(this, _sx.value, _ErziM[i], _jdCS))
        }
    }
}

//获取指定节点的 参数（用户配置的）。
// 以[;；]作为分割，切割字符串。
// 再以=分割，切割字符串（名=值）
// 装入对象。返回
NWqd_jiazaiPZ.prototype.hqJDcs = function (jd) {
    let _wbM = jd.childNodes; //取出所有的子节点。
    //开始找 文本节点。
    let nr = '';
    let jg;
    let pz = null;//存放用户配置的参数。对象
    let sx = null;

    /*    
       所有的参数=this.hqJDcs(【 <PZ juese> 】

       <PZ juese>

        1、【内容直接配置】：
            a=1;b=2;c=4;
        2、【特殊的参数值】：
            <pz cs="属性名1"> 属性值1 </pz>
            <pz cs="属性名2"> 属性值2 </pz>
       </PZ> 
       */

    //1、读取节点的所有文本。合并在一起。
    for (let i = 0; i < _wbM.length; i++) {
        // a=1;b=2;c=4;
        if (_wbM[i].nodeType == 3) { //找到文本节点。.replace(/[\r\n]/g, "")
            jg = NWHS_sck(_wbM[i].nodeValue, 1)//replace(/(^\s*)|(\s*$)|([\r\n]*)/g, "")
            // jg = _wbM[i].nodeValue.replace(/[\r\n]*/g, "")
            if (jg) {
                nr += jg;
            }
            continue;
        }
        // <pz cs="属性名1"> 属性值1 </pz>
        if (_wbM[i].nodeName == 'PZ' && (sx = _wbM[i].getAttributeNode('cs'))) {
            if (pz == null) {
                pz = {};
            }
            pz[NWHS_sck(sx.value)] = NWHS_sck(_wbM[i].innerHTML, 1)//replace(/(^\s*)|(\s*$)|([\r\n]*)/g, "")
        }

    }

    if (nr) {
        //2、分析文本，从中切割出来 用户配置的参数 并返回
        if (pz == null) {
            pz = {};
        }
        let csM = nr.split(/[;；]{1}/g);// csM=['a=1','b=2','c=3']
        let yiduiPZ;
        for (let i = 0; i < csM.length; i++) {
            csM[i] = NWHS_sck(csM[i])
            if (csM[i]) {
                yiduiPZ = csM[i].split(/=/);// yiduiPZ=['a','1'].......
                if (yiduiPZ[0] = NWHS_sck(yiduiPZ[0])) {
                    pz[yiduiPZ[0]] = yiduiPZ.length == 2 ? NWHS_sck(yiduiPZ[1]) : null
                }
            }
        }
    }


    return pz;
}
// ======================↑↑↑=========================
// 返回的是 NWqd_jiazaiPZ_gt 对象
NWqd_jiazaiPZ.prototype.hqGT = function (jueseZhi) {
    for (let i = 0; i < this.pz.length; i++) {
        if (this.pz[i].pd(jueseZhi)) {
            return this.pz[i];
        }
    }
}

//取得参数
NWqd_jiazaiPZ.prototype.hqCS = function (jueseZhi) {
    let gt = this.hqGT(jueseZhi);
    return gt ? gt.hqCSM() : null;
}